/*
 * @Description: 
 * @Author: zwx
 * @Date: 2024-11-26 17:10:21
 * @LastEditors: zwx
 * @LastEditTime: 2024-11-28 10:42:22
 * @又活了一天: 你真厉害！！！
 */
package com.briup.demo.mapper;

import com.briup.demo.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDateTime;
import java.util.List;

// 在程序运行时 框架会自动生成接口的实现类对象，
// 并交给spring的IOC容器管理
@Mapper // 表示这个是MyBatis中的Mapper接口
public interface UserMapper {
    // 根据id删除用户
    // 参数 id 用户id
    // 返回值 无
    @Delete("delete from es_category where id = #{id}")
    public void deleteUserById(Integer id);

    //借助sql注入实现功能
    @Select("select * from es_category where username=${username} and password=${password}")
    public List<User> login(@Param("username") String username, @Param("password") String password);

    //借助预编译实现功能
    @Select("select * from es_category where username=#{username} and password=#{password}")
    public List<User> login2(@Param("username") String username, @Param("password") String password);


    // 根据id查询用户信息
    public User getUserById(Integer id);

    // 多条件查询用户信息
    public List<User> getUserByCondition(
            @Param("name") String name,
            @Param("status") Byte status,
            @Param("begin") LocalDateTime begin,
            @Param("end") LocalDateTime end
    );
    public List<User> getUserByConditionNew(
            @Param("name") String name,
            @Param("status") Byte status,
            @Param("begin") LocalDateTime begin,
            @Param("end") LocalDateTime end
    );
    //更新信息
    public void updateUser(User user);
    //批量删除
    public void delUserByIds(@Param("ids") List<Integer> ids);



}